package org.dromara.customer.domain.bo;

import org.dromara.customer.domain.TaAddress;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 地址业务对象 ta_address
 *
 * @author xiyin321
 * @date 2024-07-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TaAddress.class, reverseConvertGenerate = false)
public class TaAddressBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long addressId;

    /**
     * 所属用户id
     */
    private Long userId;

    /**
     * 地址(地标地址 如厦门理工学院3期宿舍)
     */
    @NotBlank(message = "地址(地标地址 如厦门理工学院3期宿舍)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String addressName;

    /**
     * 真实地址(厦门市集美区天马路375号)
     */
    @NotBlank(message = "真实地址(厦门市集美区天马路375号)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String addressLocation;

    /**
     * 门牌号(或详细地址 如医务室小铁门)
     */
    @NotBlank(message = "门牌号(或详细地址 如医务室小铁门)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String doorplate;

    /**
     * 纬度
     */
    @NotBlank(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String latitude;

    /**
     * 经度
     */
    @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String longitude;

    /**
     * 收货人姓名
     */
    @NotBlank(message = "收货人姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String consigneeName;

    /**
     * 性别 1男 0女
     */
    @NotNull(message = "性别 1男 0女不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long consigneeSex;

    /**
     * 收货人手机号
     */
    @NotBlank(message = "收货人手机号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String consigneePhone;

    /**
     * 标签名
     */
    private String tag;


}
